<?php
namespace App\Services\Office;

use Excel;


class KsOffice
{
    //pdf主体
    public function pdfBody($data,$full_name,$expired_time,$parsed_data='',$online_time){
        $online_time = explode("-", $online_time);
        $company = $data[0]['company']['company_name'];
        $code = $data[0]['company']['code'];
        $pdf = new \TCPDF();
        $pdf->setPrintHeader(false);
        $pdf->setPrintFooter(false);

        // 设置默认等宽字体
        $pdf->SetDefaultMonospacedFont('courier');
        $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
        $pdf->setFontSubsetting(true);

        //设置字体 stsongstdlight支持中文
        $pdf->SetFont('stsongstdlight', '', 14);

        //第一页
        $pdf->AddPage();
        $html = <<<EOD
<h1 style="text-align:center">授权书</h1>
<p>【 $company 】，身份证号/统一社会信用代码：【 $code 】（“授权方”）是本授权书附件所列音乐作品/制品词、曲著作权及表演者、录音录像制作者邻接权的拥有者或完整授权人。兹授权北京快手科技有限公司及其关联公司（以下简称“被授权方”）非独家享有和使用本授权书所列词或曲作品、录音录像制品、MV作品及与其相关的歌手信息、专辑封面图片、歌手图片、专辑介绍、歌曲介绍、歌词歌谱、词曲作者及表演者姓名、唱片公司名称及标识等相关内容（“授权内容”）的著作权和邻接权中的财产权。</p>
<p>1. 授权权利</p>
<p>（1）词、曲著作权，以及表演者、录音录像制作者邻接权中的以下财产权：复制权、发行权、表演权、广播权、信息网络传播权、改编权、汇编权。</p>
<p>（2）维权权利：授权方授权被授权方以自己名义或授权第三方对任何侵犯授权内容合法权利的行为采取维权手段（包括但不限于：警告，投诉，仲裁，诉讼，调解，和解，协商，向主管机构、行业协会、新闻媒体、第三方平台或其他关联机构投诉、举报，行政投诉，刑事控告，向相关管理部门申请、申诉及其他任何维护被授权方权利的合法手段），并由被授权方承担维权成本并获得经济赔偿，授权方应积极配合被授权方提供相关文件、材料。在授权期间届满之后，被授权方以及被授权方授权的第三方可以对任何在授权期限内对授权内容实施的侵权行为进行维权。</p>
<p>2. 授权使用方式</p>
<p>（1）	被授权方运营或合作的产品内（以下简称“被授权方产品”，包括但不限于快手APP）使用（使用方式包括但不限于：在被授权方产品上作为短视频/直播的背景音乐完整或部分地呈现；作为模唱、对口型表演、线上KTV素材使用；作为被授权方产品内用户编辑、再创作的素材使用；通过信息网络以及与信息网络相关的方式提供授权内容的串流、下载、播放、复制、传输、展示、推广等）。</p>
<p>（2）	被授权方使用其产品内用户制作、上传的短视频及其他作品作为素材（以下简称“推广素材”）进行宣传、推广、广告投放的，有权使用前述推广素材中包含的授权方享有权利的授权内容。</p>
<p>授权方授权被授权方对授权内容中单个作品/制品的使用、对作品/制品片段的使用、对多个作品/制品组合的使用、对多个作品/制品片段组合的使用、对多个作品/制品和作品/制品片段的使用等；对授权内容中单个或多个作品/制品的全部或片段与其他单个或多个作品/制品的全部或片段进行组合使用；且被授权方可对授权内容中的图片、文字等进行必要的编辑、修改等。</p>
<p>3. 授权使用期限：每首授权内容的授权期限为自授权之日起【3】年，授权期限届满前30日双方均未提出异议的，则授权期限按本授权书同等条件自动延长，以此类推。授权使用期限内，除双方协商一致外，授权方不得单方撤回其授予被授权方的任何权利。</p>
<p>4．授权使用区域：■全球、□中国大陆地区、□中国（含台港澳地区）、□其他。</p>
<p>5．授权性质：授权方授予被授权方对授权内容的非排他、不可转授权的许可使用权，即：（1）除被授权方以外，授权方有权自行或再授权第三方使用；（2）被授权方不得将其依据本《授权书》取得的授权内容和授权权利转授权给第三方使用（被授权方授权其产品用户依据本授权书约定的方式使用的除外）。</p>
<p>6. 其他</p>
<p>（1）授权方保证：授权方保证对授权内容拥有完整的知识产权或合法授权，并有权授予被授权方使用且不侵犯任何第三方的合法权益；保证授权内容合法合规，不包含暴力、色情、侮辱诽谤他人、危害国家安全、破坏宗教政策等敏感、违规内容。若授权方违反上述保证而引起的任何针对被授权方的任何索赔、诉讼、处罚等，授权方应为被授权方抗辩并赔偿被授权方因此遭受的全部损失，保证被授权方的利益不受损害。</p>
<p>（2）本授权书项下之授权为免费授权。</p>
<p>（3）本授权书自授权方签署盖章之日起生效。</p>
<p style="text-align: right">授权人（签字/盖章）：【 $company 】</p>
<p style="text-align: right">授权时间： $online_time[0]年$online_time[1]月$online_time[2]日</p>
EOD;
        $pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);
        if($parsed_data!='') {
            $pdf->Image(public_path($parsed_data['path']), '145', $pdf->GetY()-30, 40, 40, '', '', '', false, 300, '', false, false, 1, false, false, false);
        }
        //第二页
        $pdf->writeHTML('附件1：授权作品清单', true, false, true, false, '');
        $table="
<table border=\"1\" align=\"center\">
<tr>
<td>序号</td>
<td>专辑名</td>
<td>作品/制品名称</td>
<td>表演者</td>
<td>词作者</td>
<td>曲作者</td>
<td>录音录像制作者</td>
<td>词著作权</td>
<td>曲著作权</td>
<td>表演者权</td>
<td>录音制作者权</td>
<td>录像制作者权</td>
<td>视听作品著作权</td>
<td>授权区域</td>
</tr>";
        foreach($data as $i=>$v) {
            if(empty($v['album'])){$album=$v['title'];}else{$album=$v['album'];}
            $table .= "
<tr>
<td>" . ($i + 1) . "</td>
<td>" . $album . "</td>
<td>" . $v['title'] . "</td>
<td>" . $v['performer'] . "</td>
<td>" . $v['writer'] . "</td>
<td>" . $v['composer'] . "</td>
<td>" . $v['performer'] . "</td>
<td>" . $v['neighboring_right_2'] . "%</td>
<td>" . $v['neighboring_right_3'] . "%</td>
<td>" . $v['neighboring_right_1'] . "%</td>
<td>100%</td>
<td>0%</td>
<td>0%</td>
<td>全球</td>
</tr>";
        }
        $table.="</table>";
        $pdf->writeHTML($table, true, false, false, false, '');
        return $pdf;
    }

    //生成盖章pdf
    public function makeSignPdf($data,$full_name,$simple_name,$expired_time,$rand,$image,$fix_time,$sp_email,$online_time)
    {
        $parsed_data = parse_url($image);
        $pdf = $this->pdfBody($data,$full_name,$expired_time,$parsed_data,$online_time);
        $num = $pdf->getNumPages();
        $path = substr($parsed_data['path'],0,strrpos($parsed_data['path'],'/')+1);
        $name = substr($parsed_data['path'],strrpos($parsed_data['path'],'/')+1);
        $fname = $_SERVER['DOCUMENT_ROOT'].$path.'/small_'.$name;
        if(file_exists($fname)){
            $toImage = $fname;
        }else{
            $toImage = $_SERVER['DOCUMENT_ROOT'].$parsed_data['path'];
        }
        $ext = explode(".", $image);
        $ext = $ext[count($ext)-1];
        cutImage($toImage,$num,$ext);
        for($i=0;$i<$num;$i++){
            $pdf->setPage(($i+1));
            $pdf->Image('image/'.$i.'.'.$ext, '180', '120', 25,  '', '', '', 'T', false, 300, '', false, false, 1, false, false, false);
        }
        //输出PDF
        $data = $pdf->Output('t.pdf', 'S');//I输出、D下载
        $dir = date('Y-m-d').'-sign-'.$rand;
        @mkdir(storage_path('/exports/'.$dir),0777);
        file_put_contents(storage_path('/exports/'.date('Y-m-d').'-sign-'.$rand.'/'.$simple_name . date('Y-m-d').'-sign.pdf'),$data);
        return $dir;
    }

    //生成无章pdf
    public function makePdf($data,$full_name,$simple_name,$expired_time,$rand,$fix_time,$sp_email,$online_time){
        $pdf = $this->pdfBody($data,$full_name,$expired_time,'',$online_time);
        $data = $pdf->Output('t.pdf', 'S');//I输出、D下载
        $dir = date('Y-m-d').'-'.$rand;
        @mkdir(storage_path('/exports/'.$dir),0777);
        file_put_contents(storage_path('/exports/'.date('Y-m-d').'-'.$rand.'/'.$simple_name . date('Y-m-d').'.pdf'),$data);
        return $dir;
    }


    //生成execl
    public function makeExecl($data,$full_name,$simple_name,$start_time,$expired_time,$rand,$online_time)
    {
        $cellData = [
            ['序号', '歌曲', '歌手', '授权方', '授权开始', '授权到期', '授权期限', '自动续期', 'ISRC', '录音著作权比例', '词著作权比例', '曲著作权比例', '作品类型（音频/视频）'],
        ];
        $datetime1 = new \DateTime($expired_time);
        $datetime2 = new \DateTime($start_time);
        $interval = $datetime1->diff($datetime2);
        $y = $interval->format('%y');
        foreach ($data as $k => $v) {
            $cell[] = [$k+1, $v['title'], $v['performer'],$v['company']['company_name'], str_replace("-",".",$online_time), str_replace("-",".",$expired_time),$y, $y, '', '100%',$v['neighboring_right_2'],$v['neighboring_right_3'],'音频'];
        }
        $c = array_merge($cellData, $cell);
        Excel::create($simple_name . date('Y-m-d').'-'.$rand,function($excel) use ($c,$v){
            $excel->sheet('sheet1', function($sheet) use ($c){
                $sheet->setAutoSize(false);
                $sheet->rows($c);
            });
        })->store('xls');
    }


}
